package se.webbzon.boltzmann.minigame.sandbox;

import java.awt.Color;
import java.awt.Rectangle;

import se.webbzon.oschi01.worldarea.WorldArea;

public interface ReadOnlySandBox {
	
	/** Returns the score of this sand box. **/
	public abstract SandBoxScore getScore();
	
	/** Returns the info of this sand box. **/
	public abstract SandBoxInfo getInfo();

	/** Returns the background color of this sand box. **/
	public abstract Color getBackgroundColor();

	/** Returns the world area of this sand box. **/
	public abstract WorldArea getWorld();

	/** Adds a listener to this sand box. **/
	public abstract boolean addListener(SandBoxListener listener);

	/** Removes a listener from this sand box. **/
	public abstract boolean removeListener(SandBoxListener listener);

	/** Clears all the listeners from this sand box. **/
	public abstract void clearListeners();

	/** Copies the boundary of the sand box to the provided rectangle. **/
	public abstract void getBoundary(Rectangle rect);

	/** Returns true if the provided sand box item is within the
	 * sand box. **/
	public abstract boolean isWithinSandbox(SandBoxItem item);

	/** Returns true if the provided point is within the sand box. **/
	public abstract boolean isWithinSandbox(double x, double y);

}